1. Field of the Invention
The present invention relates generally to computer-controlled graphical drawing and editing systems, and more particularly, to a method and apparatus for applying behaviors to freeform data.
2. Description of Related Art
Window based computer controlled graphical drawing and editing systems that are used to control displays of, for example, desktop computers, Portable Digital Assistants (PDA), and electronic whiteboards, are well known. These displays are adapted to accept input data that includes but is not limited to pen-based freeform strokes, key strokes, and mouse clicks. An attribute of such window based systems is that they tend to closely couple input data to a specific application program. This effectively yields xe2x80x9cdata specificxe2x80x9d application programs that are tightly coupled to a particular form of data.
In addition to being data specific, an application program running in a window based operating environment is tightly bound to the particular window in which the application program is running. That is, an application program executing in window based system tends to maintain complete control over its on-screen real estate. This yields an operating environment in which an application program has exclusive control over the particular window in which data is input, thereby impeding simultaneous interpretation and exchange of data between application programs.
More specifically, in such window based operating environments it is difficult to create a set of data that is xe2x80x9coutsidexe2x80x9d of a particular data specific application program. For example in a windows based system, a set of data representing a spreadsheet would generally not be written to disk without first being processed by a spreadsheet application program. This means that application programs operating in windows based systems are responsible for both xe2x80x9ccreatingxe2x80x9d content (i.e., data) as well as xe2x80x9cinterpretingxe2x80x9d content. A consequence of being a xe2x80x9cdata specificxe2x80x9d application program is that content is not freely exchanged with other application programs.
Systems that are controlled with freeform strokes are not well suited for operating application programs that produce data specific content. One reason for this is because graphical user interfaces (GUI) operating in window environments execute application programs that expect to operate on data in a particular way. For example, a drawing program provides tools for drawing, while a word processor program provides tools for writing. The data created by each of these programs (i.e., drawing and writing) is application dependent (i.e., behavior dependent). This creates a operating environment that does not readily permit data entered at a GUI to have multiple simultaneous interpretations (i.e., behaviors).
It is therefore desirable to provide an architecture for a system that decouples data creation and data interpretation. Such a system architecture would advantageously provide that data input at a GUI have multiple simultaneous interpretations by a plurality of application programs. In addition, this system architecture would advantageously provide xe2x80x9cdata independentxe2x80x9d application programs that allow the creation of data independent from particular xe2x80x9cbehaviorsxe2x80x9d that can be applied to the data by each of a plurality of application programs.
In accordance with the invention, there is provided a freeform display editing system in which behaviors can be selectively applied to freeform data. The elements of the system include strokes, segments, and behaviors. A stroke is a universal data type that in one embodiment is defined as an array of vertices that represent visual ink on a display of the system. A segment represents as an entity that maintains a collection (i.e., set) of strokes within a specific region of the display. A behavior is a task-specific application that is uniquely associated with a segment. In operation, a behavior interprets the collection of strokes maintained by a segment according to the behavior""s task-specific application.
In accordance with one aspect of the invention, data is automatically grouped into segments to define a collection of data (e.g., recorded freeform input in the form of strokes), independent from any task-specific application. This effectively defines an independent relationship between data (i.e., strokes) and behaviors that are applied to the data. In operation, behaviors are freely attached and detached from a given segment over time to provide temporal multiplexing of different task-specific applications to freeform input. When a behavior is attached to a segment, it interprets the collection of strokes maintained by the segment independent of any other behavior. Advantageously, segments provide a way to manage content independent of behaviors that provide task-specific applications.
In accordance with another aspect of the invention, there is provided a method and apparatus therefor for operating a computer system. The computer system includes a display and a user input device for generating freeform input strokes. In operation, a segment controller receives a freeform input stroke generated with the user input device. The segment controller distributes the freeform input stroke to a selected segment that maintains a set of freeform output strokes in a memory and that identifies a unique region of the display. The selected segment dispatches the freeform input stroke to a plurality of behaviors. The plurality of behaviors, which are uniquely associated with the selected segment, include at least one user specified application behavior that defines a task specific function. The freeform input stroke is processed at the plurality of behaviors that are uniquely associated with the selected segment. Each of the plurality of behaviors independently modifies the set of freeform output strokes recorded in the memory. After processing the freeform input stoke at the plurality of behaviors, the set of freeform output strokes recorded in the memory are rendered in the unique region of the display.